using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using UMEVOR.BLL;
using UMEVOR.DTO;
using UMEVOR.VO;

public partial class Portal_ArtigosList : System.Web.UI.Page
{
    #region Eventos
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack && !this.IsCallback)
        {
            PopulaArticulista();
            PopulaArtigo();

            if (Request.QueryString["palavraChave"] != null)
            {
                BLLT_ARTIGO bllArtigo = new BLLT_ARTIGO();
                if (Request.QueryString["palavraChave"] != "%!%")
                    gvArtigo.DataSource = bllArtigo.consultarPalavraChave(Request.QueryString["palavraChave"].ToString());
                else
                    gvArtigo.DataSource = bllArtigo.consultarPalavraChave("");
                gvArtigo.DataBind();
            }            
        }
    }
    protected void cmbAutor_SelectedIndexChanged(object sender, EventArgs e)
    {
        
        this.cmbAutor.Text = Request.Form[cmbAutor.UniqueID];
        this.cmbArtigo.Text = Request.Form[cmbArtigo.UniqueID];

        if (!cmbAutor.SelectedValue.Equals("0") && !cmbAutor.SelectedValue.Equals(""))
        {
            cmbArtigo.Items.Clear();
            BLLT_ARTIGO bllArtigo = new BLLT_ARTIGO();
            List<VOT_ARTIGO> artigos = bllArtigo.consultar("", 0, Int32.Parse(cmbAutor.SelectedValue));

            ListItem list = new ListItem();
            list.Value = "0";
            list.Text = "Artigos";
            cmbArtigo.Items.Clear();
            cmbArtigo.Items.Add(list);

            foreach (VOT_ARTIGO artigo in artigos)
            {
                list = new ListItem();
                list.Value = artigo.ID_ARTIGO.ToString();
                list.Text = artigo.TX_TITULO_ARTIGO.Trim();

                cmbArtigo.Items.Add(list);
            }           

           //Pesquisar();
        }
        else
            PopulaArtigo();

        Pesquisar();
    }
    protected void cmbArtigo_SelectedIndexChanged(object sender, EventArgs e)
    {
        Pesquisar();
    }
    protected void gvArtigo_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.DataItem != null)
        {
            VOT_ARTIGO artigo = (VOT_ARTIGO)e.Row.DataItem;

            LinkButton nameLinkButton = (LinkButton)e.Row.FindControl("nameLinkButton");
            Label lblAutor = (Label)e.Row.FindControl("lblAutor");
            String script = "EditarAutor({0},'{1}','{2}'); return false;";

            nameLinkButton.Text = artigo.TX_TITULO_ARTIGO;

            //BLLT_ARTICULISTA bllArticulista = new BLLT_ARTICULISTA();
            lblAutor.Text = artigo.TX_ARTICULISTA;
            nameLinkButton.Attributes["href"] = "../Portal/Artigo.aspx?id=" + artigo.ID_ARTIGO.ToString();
            //nameLinkButton.OnClientClick = string.Format(script, autor.ID_AUTOR.ToString(), autor.TX_NOME, autor.FL_TIPO_AUTOR);
        }
    }
    protected void gvArtigo_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.gvArtigo.PageIndex = e.NewPageIndex;
        Pesquisar();
    }
    #endregion

    #region Metodos
    private void PopulaArticulista()
    {
        BLLT_ARTICULISTA bllArticulista = new BLLT_ARTICULISTA();
        List<T_ARTICULISTA> articulistas = bllArticulista.listarTodos();

        ListItem list = new ListItem();
        list.Value = "0";
        list.Text = "Autores";
        cmbAutor.Items.Add(list);

        foreach (T_ARTICULISTA articulista in articulistas)
        {
            list = new ListItem();
            list.Value = articulista.ID_ARTICULISTA.ToString();
            list.Text = articulista.TX_NOME_ARTICULISTA.Trim();

            cmbAutor.Items.Add(list);
        }
    }   
    private void PopulaArtigo()
    {
        BLLT_ARTIGO bllArtigo = new BLLT_ARTIGO();
        List<T_ARTIGO> artigos = bllArtigo.listarTodos();

        ListItem list = new ListItem();
        list.Value = "0";
        list.Text = "Artigos";
        cmbArtigo.Items.Clear();
        cmbArtigo.Items.Add(list);

        foreach (T_ARTIGO artigo in artigos)
        {
            list = new ListItem();
            list.Value = artigo.ID_ARTIGO.ToString();
            list.Text = artigo.TX_TITULO_ARTIGO.Trim();

            cmbArtigo.Items.Add(list);
        }
    }
    private void Pesquisar()
    {
        string artigo = "";
        BLLT_ARTIGO bllArtigo = new BLLT_ARTIGO();
        
        if (!cmbArtigo.SelectedItem.Text.Equals("Artigos"))
            artigo = cmbArtigo.SelectedItem.Text;
        
        gvArtigo.DataSource = bllArtigo.consultar(artigo, 0, Int32.Parse(cmbAutor.SelectedValue));
        gvArtigo.DataBind();
    }
    #endregion        
    
}
